/**
 * 根据搜索的内容返回文本字符串，如果存在，增加em标签，在css更改样式即可
 * @param input input输入框
 * @param name 待搜索的文本
 * @returns string
 */
export function searchHigh(input: HTMLInputElement, name: string) {
  if (name.length < 1) return "";
  const key = input.value.trim();
  let reg: RegExp;
  if (key) {
    reg = new RegExp(key, "gi");
    if (reg) {
      name = name.replace(reg, (key) => `<em>key</em>`);
    }
  }
  return name;
}

/**
 * 因中文输入法需要多字母组合才能出中文字，避免英文一旦输入就执行搜索后方法
 * @param input 文本输入框
 * @param search 搜索的方法
 * @returns 
 */
export function searchHandle(input: HTMLInputElement, search: () => void) {
  const key = input.value.trim();
  if (key.length < 1) return;
  let isComposite = false;
  input.addEventListener("input", () => {
    if (!isComposite) {
      search();
    }
  });
  input.addEventListener("compositionstart", () => (isComposite = true));
  input.addEventListener("compositionend", () => {
    isComposite = false;
    search();
  });
}
